In order to correct for camera shake of a captured image due to camera shake, use is made of a camera having an image-stabilization function. In general, a camera with an image-stabilization function employs a method (an optical image-stabilization method) of correcting for camera shake optically by combining a gyro sensor for detecting angular speed due to camera shake and a driving unit for controlling the relative positions of a lens and an image sensor so as to cancel out camera shake.
A method (a digital image-stabilization method) has been proposed in which a plurality of images are captured at an exposure time quickly enough to avoid camera shake, namely at a high shutter speed, after which these images are electrically registered and superimposed to thereby generate an image not influenced by camera shake (e.g., see the specification of Japanese Patent Laid-Open No. 2004-219765). This technique makes it possible to correct for blur in a case where the camera is shifted slightly vertically, horizontally or diagonally (this vibration will be referred to as “shift vibration” below). However, this technique cannot correct for blur in a case where the camera is rotated about a shooting axis such as the optic axis of the lens (this vibration will be referred to as “rotary vibration” below).
Further, a technique described in the specification of Japanese Patent Laid-Open No. 2006-203504 approximates the rotary-vibration vector by a straight line on the assumption that rotary vibration is small, obtains the correlation among a plurality of images and obtains the rotary-vibration vector and a shift-vibration vector. In other words, this is a technique for linearly approximating rotary vibration and dealing with it in the same manner as the shift-vibration vector.
On the other hand, algorithms for detecting differences between rotational angles of a plurality of images have been intensively researched in recent years especially in view of demand originating from fingerprint authentication applications. For example, a method described in, for example, “Society of Instrument and Control Engineers, Tohoku Chapter, 194th Workshop (2001.6.1), File No. 194-7” detects the difference between rotational angles by replacing rotary motion with translational motion using polar coordinates.
However, the three above-described techniques for combining a plurality of images have certain problems, set forth below.
With the first technique, rotary vibration can be corrected, as mentioned above.
The second technique deals with rotary vibration but, as a pre-condition, ignores rotary vibration while the shutter is open. This means that a decline in the accuracy of rotary-vibration correction is unavoidable. Further, a plurality of images are required for the correction and the problem that arises is consumption of available memory. A further problem is that the motion vector is approximated by a straight line on the assumption that the angle of rotary vibration is small. This also means that a decline in the accuracy of rotary-vibration correction is unavoidable. Moreover, in order to combine a plurality of images and correct for rotary vibration correctly, accurate image registration is required.
With the third technique, angle of rotation can be detected accurately since polar coordinates are used for detection of rotational angle without approximating rotary vibration by a straight line. However, there is no point of view using a transformation between polar coordinates and real space in order to correct for rotary vibration.